11.2 MCP 核心功能

5 分钟阅读

MCP 提供丰富的核心功能,使 Claude Code 能够与外部工具和数据源无缝集成,极大扩展了 AI 助手的能力边界。

工具调用#

基本工具调用#

MCP 服务器提供可调用的工具,Claude Code 可以像使用内置工具一样使用它们。这些工具可以是任何类型的服务或应用,从简单的 API 调用到复杂的工作流自动化。

bash
# 使用 MCP 工具的示例 使用 GitHub 工具创建 PR 使用 Sentry 工具查询最近的错误 使用数据库工具查询用户数据 使用 Docker 工具管理容器

工具发现#

Claude Code 会自动发现 MCP 服务器提供的所有工具,并将其集成到用户界面中。用户可以通过简单的命令查看所有可用工具:

bash
# 查看可用的 MCP 工具 /mcp # 输出示例 MCP 服务器: - github: 提供 PR、issue、代码搜索等工具 - sentry: 提供错误查询、监控等工具 - database: 提供数据库查询工具 - docker: 提供容器管理工具

工具参数#

MCP 工具可以接受参数,使调用更加灵活和精确。参数可以是位置参数或命名参数:

bash
# 带参数的工具调用 使用 GitHub 工具查看 PR #123 使用数据库工具查询用户 ID 为 456 的信息 使用 Docker 工具启动名为 "web-server" 的容器

资源访问#

资源类型#

MCP 服务器可以提供多种类型的资源,让 Claude Code 能够直接访问和操作:

  • 数据库表: 可查询和操作的数据表
  • 文件系统: 可访问的文件和目录
  • API 端点: 可调用的 REST API
  • 配置文件: 可读取和修改的配置
  • 监控数据: 可查看的系统监控指标

资源发现#

Claude Code 自动发现 MCP 服务器提供的所有资源,并以直观的方式展示给用户:

bash
# 查看可用的 MCP 资源 /mcp # 输出示例 MCP 资源: - database.users: 用户表 - database.orders: 订单表 - filesystem.logs: 日志目录 - api.metrics: 系统监控 API

资源访问#

用户可以通过自然语言命令直接访问 MCP 资源:

bash
# 访问 MCP 资源的示例 查询数据库中的用户表 读取日志文件 /var/log/app.log 获取系统配置信息 查看最近 24 小时的 CPU 使用率

提示模板#

提示模板定义#

MCP 服务器可以提供预定义的提示模板,帮助用户快速完成常见任务。这些模板包含最佳实践和标准化格式,确保输出质量。

bash
# 使用 MCP 提示模板的示例 使用 GitHub 的 PR 审查模板 使用 Sentry 的错误分析模板 使用 Jira 的 bug 报告模板

提示模板优势#

提示模板带来以下优势:

  • 标准化: 统一的提示格式,确保输出质量
  • 高效: 快速开始任务,减少重复工作
  • 一致性: 确保团队成员使用相同的标准
  • 可扩展性: 可以轻松创建和共享新模板

身份验证#

OAuth 2.0#

MCP 支持 OAuth 2.0 身份验证,允许 Claude Code 安全地访问受保护的资源:

bash
# 使用 /mcp 进行身份验证 /mcp # 选择需要身份验证的服务器 # 按照提示完成 OAuth 流程

API 密钥#

MCP 支持 API 密钥身份验证,适用于服务之间的通信:

bash
# 添加带 API 密钥的服务器 claude mcp add --transport http api https://api.example.com/mcp \ --header "Authorization: Bearer your-api-key"

环境变量#

MCP 支持通过环境变量传递凭证,提高安全性和配置灵活性:

bash
# 使用环境变量添加服务器 claude mcp add --transport stdio db --env DB_URL=your-db-url \ -- npx -y @bytebase/dbhub

权限管理#

工具权限#

MCP 提供细粒度的工具级权限控制,确保用户只能访问他们需要的工具:

bash
# 限制工具访问 claude --allowedTools "Read,Grep,Glob,mcp__github"

资源权限#

MCP 支持资源级权限控制,允许管理员限制对特定资源的访问:

bash
# 限制资源访问示例 只允许访问 database.users 表 禁止修改配置文件

操作权限#

MCP 提供操作级权限控制,允许管理员限制用户可以执行的操作类型:

bash
# 限制操作类型示例 只允许只读操作 禁止删除数据库记录

数据流控制#

输出限制#

MCP 工具输出有默认限制,防止返回过多数据影响性能:

bash
# 默认限制:10,000 令牌 # 增加限制 MAX_MCP_OUTPUT_TOKENS=50000 claude

超时控制#

MCP 服务器启动有超时限制,防止长时间运行的任务阻塞系统:

bash
# 默认超时:30 秒 # 设置超时 MCP_TIMEOUT=10000 claude

流式输出#

MCP 支持流式输出,允许处理大型数据集而不会占用过多内存:

bash
# 流式输出大结果 使用数据库工具导出所有用户数据 使用日志工具实时监控系统日志

错误处理#

错误捕获#

MCP 提供详细的错误信息,帮助用户快速定位和解决问题:

bash
# 错误示例 使用 GitHub 工具创建 PR 错误:无法创建 PR - 权限不足

错误恢复#

MCP 提供错误恢复机制,包括自动重试和替代方案建议:

bash
# 自动重试失败的操作 重试失败的数据库查询 # 提供替代方案 使用其他工具完成相同任务

错误日志#

MCP 记录详细的错误日志,方便管理员排查问题:

bash
# 查看错误日志 claude --verbose

性能优化#

缓存#

MCP 支持结果缓存:

缓存查询结果

使用数据库工具查询用户数据

相同查询会使用缓存

bash
### 批处理
MCP 支持批量操作:

```bash
# 批量查询
批量查询多个用户
```

### 并行处理

MCP 支持并行处理:

```bash
# 并行执行多个 MCP 工具
同时查询多个数据源
```

## 监控和调试

### 工具使用监控

```bash
# 查看工具使用情况
显示 MCP 工具使用统计
```

### 性能监控

```bash
# 查看性能指标
显示 MCP 工具执行时间
```

### 调试模式

```bash
# 启用调试模式
claude --verbose
```

## 扩展功能

### 自定义工具

MCP 服务器可以提供自定义工具:

```bash
# 使用自定义工具
使用自定义工具处理数据
```

### 插件集成

MCP 可以通过插件集成:

```bash
# 安装带 MCP 的插件
/plugin install my-plugin@claude
```

MCP 提供多种性能优化功能,确保工具调用高效可靠:

### 缓存机制

MCP 支持结果缓存,避免重复调用相同的工具:

```bash
# 启用缓存
claude mcp add --transport http api https://api.example.com/mcp \
  --cache-ttl 300
```

### 并行调用

MCP 支持并行调用多个工具,提高处理效率:

```bash
# 并行调用示例
同时使用 GitHub 工具和 Sentry 工具
```

### 插件集成

MCP 可以与插件系统集成,进一步扩展功能:

```bash
# 安装 MCP 插件
/plugin install my-plugin@claude
```

### 技能集成

MCP 可以与技能系统深度集成,实现更复杂的自动化任务:

```bash
# 使用技能调用 MCP 工具
使用数据处理技能调用数据库工具
使用自动化技能执行 DevOps 流程
```

## 安全功能
### 数据加密

MCP 支持数据加密传输,确保敏感信息不被泄露:

```bash
# 加密传输
claude mcp add --transport http secure https://api.example.com/mcp \
  --header "Authorization: Bearer encrypted-token"
```

### 审计日志

MCP 记录详细的审计日志,便于追踪和合规检查:

```bash
# 查看审计日志
显示 MCP 工具使用历史
导出审计报告
```

### 访问控制

MCP 提供细粒度的访问控制,确保只有授权用户可以使用特定工具:

```bash
# 控制访问权限
限制特定用户访问 MCP 工具
基于角色的权限分配
```

## 最佳实践

### 1. 合理配置

根据实际需求配置 MCP 服务器,确保最佳性能和安全性:

```bash
# 配置建议
选择合适的传输方式(HTTP 用于远程,stdio 用于本地)
设置适当的超时时间(根据工具响应时间调整)
配置最小权限原则的权限设置
```

### 2. 监控使用

定期监控 MCP 工具使用情况,识别性能瓶颈和优化机会:

```bash
# 监控建议
查看使用统计数据
分析性能指标(响应时间、成功率)
识别高频使用的工具和资源
```

### 3. 安全第一

确保 MCP 配置安全,保护敏感数据和资源:

```bash
# 安全建议
使用强身份验证机制(OAuth 2.0 优于 API 密钥)
限制权限范围,遵循最小权限原则
定期更新凭证和密钥
```

### 4. 错误处理

妥善处理错误,提高系统可靠性和用户体验:

```bash
# 错误处理建议
捕获并记录所有错误
提供清晰的错误信息和恢复方案
实现自动重试机制
```

标记本节教程为已读

记录您的学习进度,方便后续查看。